#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H
#include "httpmgr.h"
#include "global.h"
#include <QDialog>

namespace Ui {
class LoginDialog;
}

class LoginDialog : public QDialog
{
    Q_OBJECT

public:
    explicit LoginDialog(QWidget *parent = nullptr);
    ~LoginDialog();
    bool checkPwdValid();
    bool checkEmailValid();
    void enableBtn(bool a);

    void AddTip(TipErr te,QString tips);
    void DelTip(TipErr te);
    void showTip(QString str,bool b_ok);

private:
    void initHttpHandlers();

    Ui::LoginDialog *ui;
    QMap<TipErr,QString> _tip_errs;
    QMap<ReqId,std::function<void(const QJsonObject&)>> _handlers;
    int _uid;
    QString _token;
signals:
    void switchRegister();
    void switchReset();
    void sig_connect_tcp(ServerInfo si);

public slots:
    void slotforgetpass();
    void slot_login_mod_finish(ReqId id, QString res, ErrorCodes err);
    void on_login_btn_clicked();
    void slot_tcp_con_finish(bool check);
    void slot_login_fail(int err);
};

#endif // LOGINDIALOG_H
